/* 
 * cms，一个基于J2EE架构内容管理系统
 * Copyright © GrayRabbit Co., Ltd. All rights reserved.
 * Department:运营department
 * 更多信息请访问：
 * http://code.google.com/p/gray-rabbit-cms/
 */
package org.grayrabbit.cms.service.system;

import java.util.List;

import org.grayrabbit.cms.entity.Admin;
import org.grayrabbit.cms.vo.system.AdminBean;
import org.grayrabbit.cms.vo.system.LoginInfo;

import org.grayrabbit.dao.util.Page;
import org.grayrabbit.service.GenericService;

/**
 * <b>OperLog</b>的service接口

 * @version 1.0,创建时间: 2011-05-16 15:55:12 
 */
public interface AdminService extends GenericService {
	/**
	 * 根据主键查询实体
	 * @param adminId
	 * @return
	 */
	Admin getAdmin(String adminId);
	/**
	 * 批量删除
	 * @param key
	 */
	void delete(String[] key);
	/**
	 * 删除实体
	 * @param admin
	 */
	void delete(Admin admin);
	/**
	 * 保存实体
	 * @param admin
	 */
	void save(Admin admin);
	/**
	 * 根据bean组装统计查询条件(名称参数)
	 * @param admin
	 * @return
	 */
	Page<Admin> getPage(AdminBean adminBean);
	/**
	 * 填充分页组件的查询：(名称参数)
	 * @param page
	 * @param adminBean
	 */
	void list(Page<Admin> page, AdminBean adminBean);
	
	/**
	 * 登录名、密码查询admin
	 * 登陆验证身份
	 */ 
	Admin getLoginAdmin(String loginName); 
	
	/**
	 * 检查登录名和昵称的唯一性
	 * @param adminBean
	 * @return
	 */
	boolean checkNameUnique(AdminBean adminBean,String adminId);
	/**
	 * 获得相应权限下的管理员
	 * @return
	 */
	List<Admin> getAdminsByOper(String operTargetId,String operTargetType,String operCode);
	
	/*
	 * 批量初始化密码
	 */
	void initPwd(String[] keys,String passwd);
	/**
	 * 初始化密码
	 * @param key
	 */
	void initPwd(String key,String passwd);
	
	void disableOrEnable(String adminId);
	
	void adminActiveStatus(String[] ids,boolean active);
	
	List<Admin> getAllUsableAdmins();
	
	/**
	 * ftl得到管理员真实姓名
	 */
	String getRealName(String loginName);
	
	/** 专题   栏目 审核 的管理员列表*/
	public List<Admin>  AllAuditorAdmins(String AuditType,String targetId);
	LoginInfo logon(String loginName, String passwd);
	/**
	 * 更新当前管理员信息
	 * @param admin
	 */
	void updateAdminSelf(Admin admin);
	
}